#!/bin/bash

echo "🔨 构建Swift企业文档存储系统..."

# 检查Go环境
if ! command -v go &> /dev/null; then
    echo "❌ Go环境未安装，请先安装Go 1.19+"
    exit 1
fi

# 设置构建环境
export CGO_ENABLED=0
export GOOS=linux
export GOARCH=amd64

# 创建构建目录
mkdir -p build

# 安装依赖
echo "📦 安装依赖..."
go mod tidy

# 构建二进制文件（嵌入所有静态资源）
echo "🔨 构建自包含二进制文件..."
go build -ldflags="-w -s" -o build/swift-webdrive

if [ $? -ne 0 ]; then
    echo "❌ 构建失败"
    exit 1
fi

# 复制配置文件模板  
echo "📋 复制配置文件..."
cp config.yaml.template build/

# 创建使用说明
cat > build/README.txt << 'EOF'
Swift企业文档存储系统 - 学习案例
====================================

学生任务:
1. 自主配置OpenStack环境（域、项目、用户、容器）
2. 编辑 config.yaml 填入配置信息
3. 运行: ./swift-webdrive
4. 访问: http://服务器IP:31080

文件说明:
- swift-webdrive: 主程序（自包含所有静态文件）
- config.yaml.template: 配置文件模板
- README.txt: 本说明文件

学习重点:
- Swift对象存储操作
- Keystone认证机制（密码/应用凭证）
- OpenStack权限管理
- 企业级安全实践

注意: 系统只验证配置正确性，不提供自动化安装。
EOF

# 创建部署包
echo "📦 创建部署包..."
cd build
tar -czf swift-webdrive.tar.gz swift-webdrive config.yaml.template README.txt
rm -f swift-webdrive

echo "✅ 构建完成！"
echo "📁 部署包位置: build/swift-webdrive.tar.gz"
echo "📊 文件大小: $(du -h swift-webdrive.tar.gz | cut -f1)"
echo ""
echo "🚀 学生任务:"
echo "1. 解压: tar -xzf swift-webdrive.tar.gz"
echo "2. 配置OpenStack环境（域、项目、用户、容器）"  
echo "3. 编辑: config.yaml（填入OpenStack配置）"
echo "4. 启动: ./swift-webdrive"
echo "5. 访问: http://服务器IP:31080"